package com.laoyao.ticket;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
 
 
//实现Printable接口 用于创建打印内容
public class SalesTicket implements Printable {
	private String meal1;
	private String meal2;
	private String food1;
	private String food2;
	private Font font;

	public SalesTicket(String meal1, String food1, String meal2, String food2) {
		super();
		this.meal1 = meal1;
		this.meal2 = meal2;
		this.food1 = food1;
		this.food2 = food2;
	}



	/**
	 * @param Graphic指明打印的图形环境
	 * @param PageFormat指明打印页格式（页面大小以点为计量单位，1点为1英才的1/72，1英寸为25.4毫米。A4纸大致为595×
	 *            842点）
	 * @param pageIndex指明页号
	 **/
	@Override
	public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
		int right = 115;        //右边一张距离左边的距离
		 int first_second = 5;   //第一行与第二行的距离
		// 转换成Graphics2D 拿到画笔
		Graphics2D g2 = (Graphics2D) graphics;
		// 设置打印颜色为黑色
		g2.setColor(Color.black);
 
		// 打印起点坐标
		double x = pageFormat.getImageableX();
		double y = pageFormat.getImageableY();
		// 设置打印字体（字体名称、样式和点大小）（字体名称可以是物理或者逻辑名称）
		font = new Font("宋体", Font.BOLD, 10);
		
		g2.setFont(font);// 设置字体
		float heigth = font.getSize2D();// 字体高度
		// 标题 第一行
		//
		g2.drawString("凤馨堂广和月子餐", (float) x, (float) y + heigth);
		g2.drawString("凤馨堂广和月子餐", (float) x + right, (float) y + heigth);
		float line = 2 * heigth + first_second;

		font = new Font("宋体", Font.BOLD, 10);
		g2.setFont(font);// 设置字体
		heigth = font.getSize2D();// 字体高度

		// 第二行：菜品
		g2.scale(1, 1.5);
		g2.drawString(meal1, (float) x, (float) y + line);
		g2.drawString(meal2, (float) x + right, (float) y + line);
		if(food1.length()>6){             //菜名过长，下一行
			String s1 = food1.substring(0, 6);
			String s2 = food1.substring(6, food1.length());
			g2.drawString(s1, (float) x + 30, (float) y + line);
			g2.drawString(s2, (float) x + 30, (float) y + line + heigth);
		}else{
			g2.drawString(food1, (float) x + 30, (float) y + line);
		}
		if(food2.length()>6){           //菜名过长，下一行
			String s1 = food2.substring(0, 6);
			String s2 = food2.substring(6, food2.length());
			g2.drawString(s1, (float) x + 30+right, (float) y + line);
			g2.drawString(s2, (float) x + 30+right, (float) y + line + heigth);
		}else{
			g2.drawString(food2, (float) x + 30 +right, (float) y + line);
		}
		
		line += heigth;
		g2.scale(1, 0.67);
		
		// 第三行：广告语
		font = new Font("宋体", Font.BOLD, 8);
		g2.setFont(font);// 设置字体
		g2.drawString("科学坐月子、健康一辈子", (float) x, (float) 75);
		g2.drawString("科学坐月子、健康一辈子", (float) x + right, (float) 75);

		switch (pageIndex) {
		case 0:
			return PAGE_EXISTS;
		default:
			return NO_SUCH_PAGE;
 
		}
 
	}
	
//	@Override
//	public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
//		int right = 115;        //右边一张距离左边的距离
//		 int first_second = 0;   //第一行与第二行的距离
//		// 转换成Graphics2D 拿到画笔
//		Graphics2D g2 = (Graphics2D) graphics;
//		// 设置打印颜色为黑色
//		g2.setColor(Color.black);
// 
//		// 打印起点坐标
//		double x = pageFormat.getImageableX();
//		double y = pageFormat.getImageableY();
//		// 设置打印字体（字体名称、样式和点大小）（字体名称可以是物理或者逻辑名称）
//		font = new Font("宋体", Font.BOLD, 10);
//		g2.setFont(font);// 设置字体
//		float heigth = font.getSize2D();// 字体高度
//		// 标题 第一行
//		
//		g2.drawString("凤馨堂广和月子餐", (float) x, (float) y + heigth);
//		g2.drawString("凤馨堂广和月子餐", (float) x + right, (float) y + heigth);
//		float line = 2 * heigth + first_second;
//		
//		font = new Font("宋体", Font.BOLD, 8);
//		g2.setFont(font);// 设置字体
//		heigth = font.getSize2D();// 字体高度
//		// 标题 第一点五行，电话和名字
//		
//		g2.drawString(name1, (float) x, (float) y + line);
//		g2.drawString(tel1, (float) x + 30, (float) y + line);
//		g2.drawString(name2, (float) x + right, (float) y + line);
//		g2.drawString(tel2, (float) x + right + 30, (float) y + line);
//		line += heigth/2;
//		
//		font = new Font("宋体", Font.BOLD, 10);
//		g2.setFont(font);// 设置字体
//		heigth = font.getSize2D();// 字体高度
//
//		// 第二行：菜品
//		g2.scale(1, 1.5);
//		g2.drawString(meal1, (float) x, (float) y + line);
//		g2.drawString(meal2, (float) x + right, (float) y + line);
//		if(food1.length()>6){
//			String s1 = food1.substring(0, 6);
//			String s2 = food1.substring(6, food1.length());
//			g2.drawString(s1, (float) x + 30, (float) y + line);
//			g2.drawString(s2, (float) x + 30, (float) y + line + heigth);
//		}else{
//			g2.drawString(food1, (float) x + 30, (float) y + line);
//		}
//		
//		if(food2.length()>6){
//			String s1 = food2.substring(0, 6);
//			String s2 = food2.substring(6, food2.length());
//			g2.drawString(s1, (float) x + 30+right, (float) y + line);
//			g2.drawString(s2, (float) x + 30+right, (float) y + line + heigth);
//		}else{
//			g2.drawString(food2, (float) x + 30 +right, (float) y + line);
//		}
//		line += heigth;
//		
//		g2.scale(1, 0.67);
//		// 第三行：广告语
//		font = new Font("宋体", Font.BOLD, 8);
//		g2.setFont(font);// 设置字体
//		g2.drawString("科学坐月子、健康一辈子", (float) x, (float) 75);
//		g2.drawString("科学坐月子、健康一辈子", (float) x + right, (float) 75);
//		switch (pageIndex) {
//		case 0:
//			return PAGE_EXISTS;
//		default:
//			return NO_SUCH_PAGE;
// 
//		}
// 
//	}
	
}

